From 9b2c63d92ff77ebce0f90a7be05437504422bf45 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sat, 11 Feb 2023 23:37:12 +0100 Subject: feat: Render localized content from sanity --- src/routes/[lang=lang]/+page.server.ts | 19 +++++++++++++++++++ src/routes/[lang=lang]/+page.svelte | 17 +++++++++++++++++ src/routes/[lang=lang]/+page.ts | 18 ++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 src/routes/[lang=lang]/+page.server.ts create mode 100644 src/routes/[lang=lang]/+page.svelte create mode 100644 src/routes/[lang=lang]/+page.ts (limited to 'src/routes/[lang=lang]') diff --git a/src/routes/[lang=lang]/+page.server.ts b/src/routes/[lang=lang]/+page.server.ts new file mode 100644 index 0000000..d3a98a5 --- /dev/null +++ b/src/routes/[lang=lang]/+page.server.ts @@ -0,0 +1,19 @@ +import { sanity } from '$lib/sanity-client'; +import type { PageServerLoad } from './$types'; +import groq from "groq"; +import type { ContactModel } from '$components/contact.svelte'; +import { fromLocalizedString } from '$lib/utils'; + +export const load = (async ({ locals }) => { + const contactSection = await sanity.fetch(groq`*[_type == "contact"][0]`); + console.log(contactSection); + + return { + contact: { + phone: fromLocalizedString(contactSection.phone, locals.locale), + email: fromLocalizedString(contactSection.email, locals.locale), + phoneHours: fromLocalizedString(contactSection.phoneHours, locals.locale), + addressLines: contactSection.addressLines.map((el: string | object) => fromLocalizedString(el, locals.locale)), + } as ContactModel + }; +}) satisfies PageServerLoad; \ No newline at end of file diff --git a/src/routes/[lang=lang]/+page.svelte b/src/routes/[lang=lang]/+page.svelte new file mode 100644 index 0000000..666aa80 --- /dev/null +++ b/src/routes/[lang=lang]/+page.svelte @@ -0,0 +1,17 @@ + + + diff --git a/src/routes/[lang=lang]/+page.ts b/src/routes/[lang=lang]/+page.ts new file mode 100644 index 0000000..fa3907b --- /dev/null +++ b/src/routes/[lang=lang]/+page.ts @@ -0,0 +1,18 @@ +import type { PageLoad } from './$types'; +import LL, { setLocale } from '$i18n/i18n-svelte' +import { get } from 'svelte/store' + +export const load = (async ({ parent, data }) => { + // wait for `+layout.ts` to load dictionary and pass locale information + const { locale } = await parent() + + // if you need to output a localized string in a `load` function, + // you always need to call `setLocale` right before you access the `LL` store + setLocale(locale) + // get the translation functions value from the store + const $LL = get(LL) + return { + title: $LL.homeTitle(), + contact: data.contact + } +}) satisfies PageLoad; \ No newline at end of file -- cgit v1.3